شبکه تعریف شده نرم افزار یک الگوی انقلابی است که همراه با سایر فناوری های شبکه در روند نسل بعدی در حال رشد است و یک معماری برای تامین نیازهای شبکه مدرن با جداسازی داده ها و کنترل ترافیک است که مدیریت جریان متمرکز و قابلیت برنامه ریزی شبکه را امکان پذیر می کند. یکی از ایرادات معماری شبکه تعریف شده نرم افزار، که در شبکه های سنتی نیز وجود دارد، مربوط به آسیب پذیری بالای آن در برابر حملات انکار سرویس توزیع شده و سایر موارد مشابه به آن می باشد. از طرفی برای مقابله با این حملات از سیستم های تشخیص ناهنجاری استفاده می شود. جمع آوری داده ها و اطلاعات مربوط به شبکه، استخراج ویژگی های مؤثر و انتخاب بهترین مدل برای تشخیص ناهنجاری از جمله چالش های مربوط به طراحی این سیستم ها می باشد. در این پژوهش روش ها و انواع الگوریتم های یادگیری ماشین معرفی شده و به بررسی مفاهیم و چگونگی استفاده از یادگیری ماشین در طبقه بندی ترافیک شبکه پرداخته می شود.